using Lzfy_His_Service.Models;

namespace Lzfy_His_Service.Services
{
    public interface IVerifyInfoService
    {
        Task<VerifyInfo?> GetByIdAsync(int id);
        Task<IEnumerable<VerifyInfo>> GetAllAsync();
        Task<IEnumerable<VerifyInfo>> GetByPatientIdAsync(string patientId);
        Task<VerifyInfo?> GetByVerifyCodeAsync(string verifyCode);
        Task<VerifyInfo?> GetByQrCodeAsync(string qrCode);
        Task<IEnumerable<VerifyInfo>> GetRecentAsync(int minutes, string? userId = null);
        Task<VerifyInfoQueryResponse> GetWithFilterAsync(VerifyInfoQueryRequest request);
        Task<int> CreateAsync(VerifyInfoCreateRequest request);
        Task<bool> UpdateAsync(int id, VerifyInfoUpdateRequest request);
        Task<bool> DeleteAsync(int id);
        Task<bool> SoftDeleteAsync(int id, string deletedBy);
    }
}